package high.concurent.service;

import com.google.code.kaptcha.Producer;
import high.concurrent.enums.SendCodeEnum;
import high.concurrent.utils.JsonData;

import javax.servlet.http.HttpServletResponse;

public interface NotifyService {

    /**
     * 获取图片验证码
     * @param response
     * @param captchaKey 用户id
     */
    void getCaptcha(Producer captchaProducer, HttpServletResponse response, String captchaKey);

    /**
     * 发送验证码（手机/邮箱）
     * @param sendCodeEnum  验证码类型
     * @param to            手机号 或者 邮箱
     * @param captcha       图片验证码
     * @param captchaKey    ip + 指纹拼接的图片验证码Key唯一标识部分
     * @return
     */
    JsonData sendCode(SendCodeEnum sendCodeEnum, String to, String captcha, String captchaKey);

    /**
     * 验证码校验
     * @param captchaCode   用户输入的验证码
     * @param to   验证码key， 手机: 手机格式； 邮箱：邮箱格式， 直接拼接即可
     * @return
     */
    boolean checkCaptchaCode(String captchaCode, String to);
}
